1399
9511
Así que estoy teniendo problemas para averiguar el uso adecuado de list :: sort () con respecto a una lista de estructuras. Aquí está el código relevante:
estudiante de estructura
{
char firstnm [20],
lastnm [20];
int id,
grado;
};
list  sList;
// Código irrelevante ...
cout << "Por favor ingrese su propio nombre, identificación y grado. (Ej .: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (datos);
sList.sort ();
El problema que estoy tratando de resolver es usar sList.sort () para ordenar por id. Sin embargo, no tengo idea de cómo pasarlo correctamente a list :: sort (). ¡Gracias de antemano por cualquier ayuda / tiempo!
EDITAR: La solución fue simplemente agregar esto a mi estructura
operador bool <(const student & cmp) const {
return id 
                                
Debería echar un vistazo a std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Hay varias definiciones de esa función, y una en la que puede especificar lo que desea ordenar.
Además, eche un vistazo a esa publicación, creo que es lo que necesita: https://stackoverflow.com/a/21234017/6663947
Editar:
ese es un ejemplo de comparador:
sList.sort ([] (const student & a, const student & b) {return a.id 
ordenación vacía (Compare comp);
Suponiendo que desea ordenar los objetos de los estudiantes en su lista de acuerdo con la identificación de la clave en orden ascendente. Puede definir el operador